アプリケーションアーキテクチャ > ビジネスロジック層
#設計
そのシステムで業務を表現するモデルや処理への関心
ドメイン
業務的なバリデーションやルールの適用など
大きく次の 2 種類の実装方法がある
トランザクションスクリプト
ドメインモデル
要求の複雑さによってはさらに抽象化の層を設けることがある
ユースケース層とか
ドメインモデルを作成する場合はこの中でアプリケーションレイヤとドメインの2層に分けるなど
RailsのActiveRecordはドメインモデルとデータアクセス層を同居させることで高い生産性を発揮している
「それがなにか」(What)と「どうするか」(How)の分離
リソースとユースケースの分離
ドメイン知識をトランザクションから分離して閉じ込めると取り回しやすくなるので普遍的なユースケースに耐えられるようになる
副作用とドメインを切り離す